package com.demo.afternoon;

/**
 * @ClassName 反射4
 * @Description TODO
 * @Author tianqinglong
 * @Date 19:16 2022/7/12
 * @Version 1.0
 **/
public class 反射4 {

        public static void main(String[] args) throws ClassNotFoundException {

            //获取系统类的加载器
            ClassLoader systemClassLoader = ClassLoader.getSystemClassLoader();
            System.out.println(systemClassLoader);
            //jdk.internal.loader.ClassLoaders$AppClassLoader@6d06d69c

            // 获取系统类加载器的父类加载器-->扩展类加载器
            ClassLoader parent = systemClassLoader.getParent();
            System.out.println(parent);
            //jdk.internal.loader.ClassLoaders$PlatformClassLoader@372f7a8d


            // 获取扩展类加载器的父类加载器-->根加载器(c/c++)
            ClassLoader parent1 = parent.getParent();
            System.out.println(parent1);
            //null

            // 测试当前类是哪个加载器加载的
            ClassLoader classLoader = Class.forName("com.demo.afternoon.反射4").getClassLoader();
            System.out.println(classLoader);
            //jdk.internal.loader.ClassLoaders$AppClassLoader@6d06d69c


            // 测试JDK内置的类是谁加载的
            classLoader = Class.forName("java.lang.Object").getClassLoader();
            System.out.println(classLoader);
            //null


            // 如何获得系统类加载器可以加载的路径
            System.out.println(System.getProperty("java.class.path"));
            //E:\javaTest\Test\bin
    }


}
